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

Конструкция ЕСЛИ ТОГДА ИНАЧЕ

Автор Ann_, 04 сен 2020, 15:51

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

Ann_

Здравствуйте! На печатную форму должна выводится информация (вес нетто) в зависимости от наличия характеристики. Сейчас не срабатывает первая строка после Тогда... подскажите как решить данный вопрос?)


Если ТекущаяСтрока.Характеристика = Ложь Тогда
     ОбластьСтроки.Параметры.Нетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Упаковка.Числитель;
     ОбластьСтроки.Параметры.ОбщаяНетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Количество;
Иначе
     ОбластьСтроки.Параметры.Нетто = ДопСведенияСтрокойВесНетто;
     ОбластьСтроки.Параметры.ОбщаяНетто = ДопСведенияСтрокойВесНетто * ТекущаяСтрока.Количество;
КонецЕсли;

LexaK

хм, вот это
ЦитироватьТекущаяСтрока.Характеристика = Ложь
скорее всего не Ложь!

поэтому и не срабатывает!
если помогло нажмите: Спасибо!

IL2016

причем при решении ошибки запроса в другой ветке
я обращал внимание этого пользователя на тип значения характеристики.

У них все какие-то идеи.





Ann_

Но во второй строке не используется характеристика... А данные берет и подставляет из первой во вторую(

Добавлено: 07 сен 2020, 08:29


Цитата: IL2016 от 04 сен 2020, 16:41
я обращал внимание этого пользователя на тип значения характеристики

Что не так с типом значения? Какое оно должно быть?

LexaK

ааа, так это вы просто не почистили старое значение.
либо перед заполнение области Строка, чистите все параметры,
либо если что-то путое или не используется очищайте!
в вашем случае в самом начале цикла, такую команду вставьте

ОбластьСтроки.Параметры.Нетто = 0;
если помогло нажмите: Спасибо!

Ann_


antoneus


LexaK

Ann_,
ЦитироватьНе сработало...
не туда вставляеете команду,

всю процедуру формирования макета, выкладывайте
если помогло нажмите: Спасибо!

IL2016

давайте хоть взглянем на весь макет печатной формы от 1-й колонки до последней, с заполненными данными, как есть. 



Ann_

ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");

СуммаОбщаяБрутто = 0;
СуммаОбщаяНетто = 0;


Для Каждого ТекущаяСтрока Из СсылкаНаОбъект.Товары Цикл

  ОбластьСтроки.Параметры.Нетто = 0;

Характеристика = ТекущаяСтрока.Характеристика;
ОбластьСтроки.Параметры.НомерСтроки = ТекущаяСтрока.НомерСтроки;
ОбластьСтроки.Параметры.ПредставлениеНоменклатуры = ТекущаяСтрока.Номенклатура.НаименованиеПолное + " " + Характеристика;
ОбластьСтроки.Параметры.НоменклатураКод = ТекущаяСтрока.КодТНВЭД;
ОбластьСтроки.Параметры.КоличествоМест = ТекущаяСтрока.Количество;
ОбластьСтроки.Параметры.ЕдиницаИзмеренияНоменклатуры = ТекущаяСтрока.Номенклатура.ЕдиницаИзмерения;
//ОбластьСтроки.Параметры.ОбщаяНетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Количество;

Если ТекущаяСтрока.Характеристика = Ложь Тогда
    ОбластьСтроки.Параметры.Нетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Упаковка.Числитель;
     ОбластьСтроки.Параметры.ОбщаяНетто = ТекущаяСтрока.Номенклатура.ВесЧислитель * ТекущаяСтрока.Количество;
Иначе
     ОбластьСтроки.Параметры.Нетто = ДопСведенияСтрокойВесНетто;
     ОбластьСтроки.Параметры.ОбщаяНетто = ДопСведенияСтрокойВесНетто * ТекущаяСтрока.Количество;
КонецЕсли;

ОбластьСтроки.Параметры.КоличествоВОдномМесте = ТекущаяСтрока.Упаковка.Числитель;
ОбластьСтроки.Параметры.КоличествоМестКороб = ТекущаяСтрока.КоличествоУпаковок;
ОбластьСтроки.Параметры.Брутто = ТекущаяСтрока.Упаковка.Вес;

вес =  ТекущаяСтрока.КоличествоУпаковок * 0.3;                     

Если  ТекущаяСтрока.Упаковка.Числитель > 1 тогда
ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес * ТекущаяСтрока.КоличествоУпаковок + вес;
Иначе
ОбластьСтроки.Параметры.ОбщаяБрутто = ТекущаяСтрока.Упаковка.Вес * ТекущаяСтрока.Количество;
КонецЕсли;

СуммаОбщаяБрутто = СуммаОбщаяБрутто + ОбластьСтроки.Параметры.ОбщаяБрутто;//+++
СуммаОбщаяНетто = СуммаОбщаяНетто + ОбластьСтроки.Параметры.ОбщаяНетто;

////////ОбластьСтроки.Параметры.НеттоСУпаковкой = ТекущаяСтрока.Упаковка.Вес / ТекущаяСтрока.Упаковка.Числитель * ТекущаяСтрока.Количество;
ОбластьСтроки.Параметры.НеттоСУпаковкой = ТекущаяСтрока.Упаковка.Вес * ТекущаяСтрока.КоличествоУпаковок;


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

Теги:

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

Рейтинг@Mail.ru

Поиск