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

Поиск значения в табличной части документа

Автор Амал, 12 июл 2017, 06:35

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

Kironten

Не
Цитата: Амал от 18 июл 2017, 10:28
Если Строка.Номенклатура.Пустая() Тогда

а:
Если Строка.Номенклатура = Справочники.Номенклатура.ПустаяСсылка()

Амал

Если Строка.Номенклатура = Справочники.Номенклатура.ПустаяСсылка()

Ничего не изменилось - условие не срабатывает (ни "тогда", ни "иначе").

Kironten

Значит в табличной части "услуги" нет позиций, в другом случае хоть одно из условий бы отработало.
А вообще для каждой строки ТЧ выводить итоговый НДС - это сильно...
И давайте вы уже будете пользоваться отладкой. 4 страницы по теме - а воз и ныне там.

alex0402

Цитата: Амал от 18 июл 2017, 11:56Ничего не изменилось - условие не срабатывает (ни "тогда", ни "иначе").

так вообще не бывает!
Спасибо за Сказать спасибо

Амал

Цитироватьтак вообще не бывает!

Я не придумываю. Это условие не срабатывает:

Для Каждого Строка ИЗ СсылкаНаДокумент.Услуги Цикл

//НайденноеЗначение = СсылкаНаДокумент.Услуги.НайтиСтроки(Строка.Номенклатура, "Работа");

Если Строка.Номенклатура = Справочники.Номенклатура.ПустаяСсылка() Тогда
ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
ОбластьИтогоНДС.Параметры.СуммаНДС1 = 1;
ТабличныйДокумент.Вывести(ОбластьИтогоНДС);
Иначе
ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
ОбластьИтогоНДС.Параметры.СуммаНДС1 = 2;
ТабличныйДокумент.Вывести(ОбластьИтогоНДС);
КонецЕсли;

КонецЦикла;


Параметр "СуммаНДС1" в ПФ не заполняется при этом условии.
Добавлено: 18 июл 2017, 13:29



Цитата: Kironten от 18 июл 2017, 12:16
И давайте вы уже будете пользоваться отладкой. 4 страницы по теме - а воз и ныне там.

Форум для этого и создан, чтобы помогать новичкам в изучении программирования. Я пробую все варианты, которые тут предлагают, но они не работают. Мне нужно разобраться в этом вопросе, поэтому и 4 страницы. Точка останова не срабатывает, когда её ставлю напротив части кода, но когда ставлю галочку по условию (остановка по ошибке), то вообще кидает в "общий модуль".

alex0402

Цитата: Амал от 18 июл 2017, 13:24то вообще кидает в "общий модуль".

это бывает, когда работает серверный вариант и не включена отладка на сервере. В Файловом варианте крайне редко.

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

Kironten

Цитата: Амал от 18 июл 2017, 13:24
Форум для этого и создан, чтобы помогать новичкам в изучении программирования. Я пробую все варианты, которые тут предлагают, но они не работают. Мне нужно разобраться в этом вопросе, поэтому и 4 страницы. Точка останова не срабатывает, когда её ставлю напротив части кода, но когда ставлю галочку по условию (остановка по ошибке), то вообще кидает в "общий модуль".
Для чего создан форум знает только тот кто создавал сайт.
Вы ведь даже не пытаетесь понять почему та же отладка не работает.
Начинайте отладку с самого начала. Если формы управляемые и впф вы только подключаете в дополнительные, то отладка естественно ничего не даст, потому как в этом случае создается копия впф и помещается в временный файл. В этом случае, либо найдите обработки по отладке ВПФ на упр. приложении, либо ставьте точки на вызов общих модулей и туда передавайте свои значения и там уже смотрите значения, либо как в обычных - формируйте свою форму обработки со ссылкой на документ и перепрописывайтесь на него, а когда уже отладите вернете типовые функции типа: УниверсальныеМеханизмы.НапечататьДокумент() и т.п.
А то получается сейчас схема такая, вам советуют, вы вставляете код, запускаете обработку, она не срабатывает так как вам надо, а участники обсуждения должны с 3 нот угадать, что же именно не так сработало. Так успеха в ближайшее время сложно достигнуть.

Dethmontt

Амал, Заменить ваше творчество Строки = СсылкаНаДокумент.Услуги.Найти(Перечисления.СтавкиНДС.БезНДС, "СтавкаНДС");

на

СтрокА = ТаблицаУслуги.Найти(Перечисления.СтавкиНДС.БезНДС, "СтавкаНДС");

Но какой в этом сакральный смысл? Если в документе указали ВСЕ 3-и разные ставки НДС что должно быть выведено в подвале печатной формы?

       Если СтрокА <> Неопределено Тогда // В таблице есть ставка БезНДС
           
            ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
            ОбластьИтогоНДС.Параметры.СуммаНДС = 1;
            ТабличныйДокумент.Вывести(ОбластьИтогоНДС);
           
        Иначе //В таблице НЕТ ставки БезНДС
           
            ОбластьИтогоНДС = Макет.ПолучитьОбласть("ИтогоНДС");
            ОбластьИтогоНДС.Параметры.СуммаНДС = ТаблицаУслуги.Итог("СуммаНДС");
            ТабличныйДокумент.Вывести(ОбластьИтогоНДС);
           
        КонецЕсли;
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Амал

Цитата: Dethmontt от 19 июл 2017, 00:04
Но какой в этом сакральный смысл? Если в документе указали ВСЕ 3-и разные ставки НДС что должно быть выведено в подвале печатной формы?

Спасибо! Ваша подсказка помогла. Задание дали - реализовать 3 условия: "В том числе с НДС", "Ставка 0%" и "Без налога НДС". Ничего не говорили о количестве и разном содержании строк. Я так понимаю, задание дали, просто для моего обучения.


Добавлено: 19 июл 2017, 11:55


Всем хочу выразить Благодарность за вашу отзывчивость. Задача решена.

Теги:

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

Рейтинг@Mail.ru

Поиск