Имя: Пароль:
1C
1С v8
сравнение в строке табл части
,
0 Kassidy_nd
 
29.08.16
10:06
Всем доброго времени суток.
Суть такая, пилю проверку вида поступления НДС и ставки.

Для единственного значения все работает
Пример:
Если СтрокаТаблицы.СтавкаНДС.Ставка =0 и (СтрокаТаблицы.НДСВидПоступления.Код <> "000000006") Тогда
Сообщить("В строке номер """+ СокрЛП(СтрокаТаблицы.НомерСтроки) + """ табличной части """ + ИмяТабличнойЧасти +" "" выбран неверный вид поступления");
Отказ = Истина;
        КонецЕсли;    

Теперь вопрос, а как сравнить если вместо "000000006" будет список значении КодыНДС?

КодыНДС = новый СписокЗначений;
КодыНДС.Добавить("000000006");
КодыНДС.Добавить("000000018");
1 polosov
 
29.08.16
10:09
(0) Если точно хочешь СЗ, то там есть методы НайтиПоЗначению и НайтиПоИдентификатору
2 Kassidy_nd
 
29.08.16
10:11
(1) Не обязательно СЗ, главное чтобы сравнить можно было с несколькими значениями. Смотрел СП по методу НайтиПоЗначению, тока ругается что "Процедура или функция с указанным именем не определена (НайтиЗначение)"
3 Kassidy_nd
 
29.08.16
10:12
(2) + сорри смотрел не то
4 polosov
 
29.08.16
10:12
(0) Тут достаточно массива.

Если СтрокаТаблицы.СтавкаНДС.Ставка =0 и МассивКодоРанееОпределенный.Найти(СтрокаТаблицы.НДСВидПоступления.Код) = Неопределено) Тогда
Сообщить("В строке номер """+ СокрЛП(СтрокаТаблицы.НомерСтроки) + """ табличной части """ + ИмяТабличнойЧасти +" "" выбран неверный вид поступления");
Отказ = Истина;
        КонецЕсли;
5 Kassidy_nd
 
29.08.16
10:20
(4) так работает, спасибо!
6 Kassidy_nd
 
29.08.16
10:24
(5)+ в итоге получилось так (для тех кто такое же решение искал)

МассивКодоРанееОпределенный = новый Массив;
          МассивКодоРанееОпределенный.Добавить("000000006");
          МассивКодоРанееОпределенный.Добавить("000000018");
          МассивКодоРанееОпределенный.Добавить("ХХХХХХХХХ");
          МассивКодоРанееОпределенный.Добавить("ХХХХХХХХХ");
          МассивКодоРанееОпределенный.Добавить("ХХХХХХХХХ");
        
Если СтрокаТаблицы.СтавкаНДС.Ставка =0 и (МассивКодоРанееОпределенный.Найти(СтрокаТаблицы.НДСВидПоступления.Код) = Неопределено) Тогда
              Сообщить("В строке номер """+ СокрЛП(СтрокаТаблицы.НомерСтроки) + """ табличной части """ + ИмяТабличнойЧасти +" "" выбран неверный вид поступления");
             Отказ = Истина;
КонецЕсли;    
        
Если СтрокаТаблицы.СтавкаНДС.Ставка <>0 и (МассивКодоРанееОпределенный.Найти(СтрокаТаблицы.НДСВидПоступления.Код) <> Неопределено)
Тогда
Сообщить("В строке номер """+ СокрЛП(СтрокаТаблицы.НомерСтроки) + """ табличной части """ + ИмяТабличнойЧасти +" "" выбран неверный вид поступления");
             Отказ = Истина;
КонецЕсли;
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.