Имя: Пароль:
1C
1С v8
Прервать печать ПФ
,
0 Shouldercannon
 
19.11.20
14:12
Доброго времени суток!
[CODE]Функция Печать(СсылкаНаДок, ТабДок) Экспорт        
    Макет = ПолучитьМакет("Макет");
    ДанныеДляЗаполнения = ПодготовитьДанные(СсылкаНаДок);
    ЗаполнитьЗначенияСвойств(Макет.Параметры, ДанныеДляЗаполнения);
    ТабДок.Вывести(Макет);
    
    Возврат ТабДок;        
КонецФункции

Функция ПодготовитьДанные(ДокОбъект) Экспорт        
    СтруктураВозврата = Новый Структура("Имя");
    Имя = "Something";
    Если НЕ СтрДлина(Имя) > 0 Тогда
        Предупреждение("Поле заполнено неверно!", , "Предупреждение!");
        Возврат Ложь; // Неверное решение
    КонецЕсли;    
    Возврат СтруктураВозврата;        
КонецФункции[/CODE]
Пытаюсь прервать выполнение печати формы, если длина строки [B]Имя[/B] меньше нуля. Не могу никак сообразить как это правильно сделать.
[CODE]Возврат Ложь;[/CODE]
Явно не то, что нужно.
1 ZDenis
 
19.11.20
14:23
(0)
ДанныеДляЗаполнения = ПодготовитьДанные(СсылкаНаДок);
Если ДанныеДляЗаполнения = Ложь Тогда
Возврат;
КонецЕсли;


А вообще "Имя" откуда появляется? Можно ведь сразу не печатать если оно не то
2 Kassern
 
19.11.20
14:34
Это вообще что за вырвиглаз?
СтруктураВозврата = Новый Структура("Имя"); //на кой эта стурктура, если ее дальше не используешь?
Имя = "Something";
Если НЕ СтрДлина(Имя) > 0 Тогда // во-первых, переменная "имя" всегда будет заполнена, строчкой выше ты ее заполнил строкой "Something". Услоие по факту бесполезное.
//Если уж хочешь что-то проверять на заполненность используй ЗначениеЗаполнено(ТвоеЗначение).
Если в общем, при ошибке заполнения документа нужно прервать печать и сообщить об ошибках, возвращай структуру, где будут ключи ТабДок, ТекстОшибки. Если текстОшибки заполнен, то не печатай и сообщай его, иначе печатай табдок.
3 Shouldercannon
 
19.11.20
16:19
Эта структура нужна для заполнения шаблона. Это часть кода. Перменная Имя может быть и пустой - это всего-лишь пример.
4 dka80
 
19.11.20
16:27
Если ПустаяСтрока(Имя)

но учти отличия между ПустаяСтрока и ЗначениеЗаполнено
5 ДенисЧ
 
19.11.20
16:33
ДанныеДляЗаполнения = ПодготовитьДанные(СсылкаНаДок);
Если НЕ ДанныеДляЗаполнения Тогда Возврат; КонецЕсли
6 ДенисЧ
 
19.11.20
16:34
Возврат Неопределено

Или

Возврат Табдок; // Без заполнения
2 + 2 = 3.9999999999999999999999999999999...