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

Булево в Функции

Автор Каримдат, 07 сен 2017, 18:00

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

Каримдат

Уважаемые форумчане. Снова нужна подсказка.
В обработке Печать этикеток подправил немного, тут всё работает, вот примерный код(скопировал часть из модуля формы)
Процедура Печать(ТаблицаТоваров) Экспорт
Таб                     = Новый ТабличныйДокумент;
Таб.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Этикетка"+СокрЛП(ИмяКомпьютера());
Если ПечататьВставку = Ложь Тогда
Макет                   = ПолучитьМакет("ЭтикеткаБирка");
ЭтикеткаОбласть         = Макет.ПолучитьОбласть(1,1,4,2);
ОбластьНоменклатура      = ЭтикеткаОбласть.Области.Номенклатура;
ОбластьДатаПечати      = ЭтикеткаОбласть.Области.ДатаПечати;
Иначе
Макет = ПолучитьМакет("ЭтикеткаБиркаСоВставками");
ЭтикеткаОбласть         = Макет.ПолучитьОбласть(1,1,4,2);
ОбластьНоменклатура    = ЭтикеткаОбласть.Области.Номенклатура;
ОбластьДатаПечати    = ЭтикеткаОбласть.Области.ДатаПечати;
ОбластьВставки = ЭтикеткаОбласть.Области.Вставки;
КонецЕсли;

Если ПечататьВставку = Ложь Тогда
ОбластьНоменклатура.Текст = СокрЛП(СтрокаИзСписка.Номенклатура.ВидНоменклатуры);
Иначе
ОбластьНоменклатура.Текст = СокрЛП(СтрокаИзСписка.Номенклатура.ВидНоменклатуры) + Символы.ПС + "Арт.: ";
КонецЕсли;

КонецПроцедуры // Печать()
.


И тут всё работает.

А вот тут, в обработке Печать ценников, не срабатывает. Предполагаю что в Функции надо как то по другому писать, но как, пока не удалось найти.

Тут срабатывает только условие в Если = Истина или Ложь.

Функция ПечатьЦенника() Экспорт
Если НЕ ЗначениеЗаполнено(Организация) Тогда
Предупреждение("Не выбрана организация!");
Возврат Неопределено;
КонецЕсли;

ТабДокумент                     = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Ценник";

Если Стеллаж = Ложь  Тогда
Макет                          = ПолучитьМакет("Ценник");
Иначе
Макет = ПолучитьМакет("ЦенникСтеллаж");
КонецЕсли;
ОбластьЦенника = Макет.ПолучитьОбласть("Строка|Столбец");
ДатаПечати = РабочаяДата;
ТекСтолбец = 0;
ТекСтрока  = 0;
Для Каждого СтрокаТаблицы Из Товары Цикл
Если СтрокаТаблицы.Печать Тогда
Для Тмп = 1 По СтрокаТаблицы.Количество Цикл

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

ТекСтолбец = ТекСтолбец + 1;

Если ТекСтолбец = 5 Тогда
ТекСтрока  = ТекСтрока + 1;
ТекСтолбец = 0;
КонецЕсли;

Если ТекСтрока = 3 Тогда
ТекСтрока = 0;
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
ТабДокумент.ТолькоПросмотр = Истина;
Возврат ТабДокумент;

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


Подскажите пожалуйста.

oleg-x

Что у Вас конкретно не работает. Не заходит в функцию или функция как то не так работает как вы хотите?
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Каримдат

Если Стеллаж = Ложь  Тогда
    Макет  = ПолучитьМакет("Ценник");
Иначе
    Макет = ПолучитьМакет("ЦенникСтеллаж");

Не срабатывает значение Булево.
То есть если прописать Стеллаж = Истина; он возьмёт ЦенникСтеллаж, если прописать Ложь, то Ценник. А галочка не работает, не срабатывает переключатель. В Процедуре в другой обработке, я делал такой переключатель, с макетами двумя.
Первый код в этом посте. В Процедуре. А этот код в Функции пытаюсь( но походу неправильно что то делаю

Добавлено: 07 сен 2017, 22:14


Вот та обработка которую пытаюсь сделать. Конфигурация Управление торговлей 10.3, в ней делаю.

oleg-x

Почти все сделано правильно, не правильно создан реквизит на форме. Выдели реквизит - нажми выбрать данные и выбери реквизит стеллаж обработкаобъект.стеллаж.
И все заработает.
А сейчас видимо указан программно созданный реквизит.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Каримдат

Спасибо тебе, мил человек))) всё так как ты и сказал))) не тот реквизит просто выбрал)))

AsadRoman

Цитата: Каримдат от 07 сен 2017, 22:08
Если Стеллаж = Ложь  Тогда
   


Люди вот что это за бред? а?
Неужели трудно использовать нормальное логическое выражение:

Если Не Стеллаж Тогда
    ...
Иначе
    ...
КонецЕсли;

alex0402

а если Стелаж может быть не только булево, а еще NULL или стока. го..но код конено, но все же. Я такие приколы даже в типовых встречал...
Спасибо за Сказать спасибо

Каримдат

Что вы хотите от новичка в программировании? ) От меня)))) Как делал предыдущую обработку, она работает, по принципу сделал и эту))))

Теги:

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

Рейтинг@Mail.ru

Поиск