Удалить пустые строки таблицы значений

1. user1619761 02.08.21 13:49 Сейчас в теме
Добрый день. Подскажите, пожалуйста, как удалить строки с пустыми значениями , пробовал делать проверку на пустую строку, но пустые строки не исчезли

&НаКлиенте
Процедура Загрузить(Команда)
	// Вставить содержимое обработчика.
	
ЗагрузитьИзDBF();

Если ПроверкаЕдИзмНоменклатуры Тогда	
	
Для Каждого Строка Из ТЧ Цикл

Товар = СокрЛП(Строка.ТоварНаим);


КодНомПДКС = СокрЛП(Строка.ТоварКод);
Номенклатура = ПолучитьНоменклатуру(КодНомПДКС);
КодЕдИзмПДКС = СокрЛП(Строка.КодЕдИзмПДКС);
НаимЕдИзмПДКС = СокрЛП(Строка.НаимЕдИзмПДКС);
Товар1С = Номенклатура;
КодЕдИзм1С = Код1СПолучить(Товар1С);
ЕдИзм1СНаим = ЕдИзм1СПолучить(Товар1С);
Кавычка = Прав("",1);
НаимЕдИзм1С = Кавычка+ЕдИзм1СНаим+Кавычка;

ТекСтрТабОшибокЕдИзмНоменклатуры = ТабОшибокЕдИзмНоменклатуры.Добавить();

Если Не КодЕдИзм1С=КодЕдИзмПДКС Тогда
	
	ТекСтрТабОшибокЕдИзмНоменклатуры.Номенклатура = Товар1С;
	ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзм1С = (НаимЕдИзм1С+", "+КодЕдИзм1С);
	ТекСтрТабОшибокЕдИзмНоменклатуры.ЕдИзмПарадокс = (НаимЕдИзмПДКС+", "+КодЕдИзмПДКС);
	ТекСтрТабОшибокЕдИзмНоменклатуры.РезультатПроверки = ("Различаются наименование или код единицы измерения");
	
КонецЕсли;

КонецЦикла;
КонецЕсли;
	
КонецПроцедуры
Показать
По теме из базы знаний
Найденные решения
2. Ivanov_OM 38 02.08.21 14:21 Сейчас в теме
Зачем так все усложнять.
Отбор = Новый Структура("Код,Наименование","","");
МассивПустыхСтрок = ТабЗнач.НайтиСтроки(Отбор);
Для Каждого СтрокаМассива из МассивПустыхСтрок Цикл
	ТабЗнач.Удалить(СтрокаМассива);
КонецЦикла;	


В отбор ставишь те поля таблицы, которые нужно проверять на пустоту.
В моем примере это Код и Наименование.
Pependos; DoctorRoot; nomad_irk; FilimonVl; user1619761; ubnkfl; +6 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. DJ_Codebase 02.08.21 14:38 Сейчас в теме
(1)
Кавычка = Прав("",1);
НаимЕдИзм1С = Кавычка+ЕдИзм1СНаим+Кавычка;

Это че за перл?
4. user1619761 02.08.21 14:40 Сейчас в теме
(3) это для сравнения единиц измерений)
6. DJ_Codebase 02.08.21 14:45 Сейчас в теме
(4) не-не, учитесь сразу писать нормальный код. в отладке посмотри на свою "кавычку!))
7. user1619761 02.08.21 14:50 Сейчас в теме
(6) Да вроде все норм с ней )) Или как то иначе работать должно? Просто тут единицы измерения из дбф файла уже в кавычках идут, а в 1с без, соответственно по условию проверки ед измерения по наименованию уже будут различия, вот я кавычки и добавил ))
Прикрепленные файлы:
8. DJ_Codebase 02.08.21 14:54 Сейчас в теме
(7) я бы избавился от кавычек так:
СтрЗаменить(СтрокаГдеМогутБытьКавычки,"""","")

если они там есть, или их нет - пофиг, будет без них
9. user1619761 02.08.21 14:56 Сейчас в теме
(8) Я изначально так делал, но они не заменились. Поэтому решил добавить туда, где их нету =)
10. DJ_Codebase 02.08.21 14:59 Сейчас в теме
(9) так надо ж делать правильно, это же функция:
СтрокаГдеМогутБытьКавычки = СтрЗаменить(СтрокаГдеМогутБытьКавычки,"""","");
и будет работать
11. user1619761 02.08.21 15:04 Сейчас в теме
(10) ок,ща я напишу как у меня было изначально =)

КодНомПДКС = СокрЛП(Строка.ТоварКод);
Номенклатура = ПолучитьНоменклатуру(КодНомПДКС);
КодЕдИзмПДКС = СокрЛП(Строка.КодЕдИзмПДКС);
НаимЕдИзмПДКС = СокрЛП(Строка.НаимЕдИзмПДКС);
//НаимЕдИзмПДКС = СтрЗаменить(СокрЛП(Строка.НаимЕдИзмПДКС,"""","");     ////вот это не отработало
Товар1С = Номенклатура;
КодЕдИзм1С = Код1СПолучить(Товар1С);
ЕдИзм1СНаим = ЕдИзм1СПолучить(Товар1С);
НаимЕдИзмПДКСБезКавычек = СтрЗаменить(НаимЕдИзмПДКС ,"""","");    ///// это тоже не отработало
Показать
12. user1619761 02.08.21 15:06 Сейчас в теме
(10) или ты имеешь ввиду ,что надо было сделать вот так

НаимЕдИзмПДКСБезКавычек = НаимБезКавычекПолучить()

Функция НаимБезКавычекПолучить()

   //запрос из табличной части единиц измерения и так далее

КонецФункции;
13. DJ_Codebase 02.08.21 15:08 Сейчас в теме
(12) нет, я имел ввиду то, как я написал в предыдущем посте. это работает, поверь
14. user1619761 02.08.21 15:09 Сейчас в теме
(13) да я знаю,что это работает, в других обработчиках отрабатывало, а тут не сработало, по какой причине не понятно, но я не просто так стал добавлять кавычки ))
15. DJ_Codebase 02.08.21 15:12 Сейчас в теме
(14) так ты по сути ничего не добавлял то, Кавычка = Прав("",1) - вдумайся, что ты вот тут делаешь?
17. user1619761 02.08.21 15:17 Сейчас в теме
(15) ну смотри, изначально единица измерения в 1с у меня была м. , после данной манипуляции я получил "м.", в пдф файле единица измерения так же "м." . У меня условие было на сравнение ед измерения по наименованию, соответственно, м. и "м." для программы уже будут как разные единицы измерения, из за отсутствия кавычек. Я стал убирать кавычки, но это не сработало, ну а если это не сработало, значит надо идти в обратном направлении и добавлять кавычки туда, где они отсутствуют . В общем как то так =)
19. DJ_Codebase 02.08.21 15:25 Сейчас в теме
(17) Тебе надо хотя бы азы подучить. Ты их даже не знаешь
21. user1619761 02.08.21 15:29 Сейчас в теме
(19) Я их учу постепенно, вникаю понемногу .Спасибо =)
22. DJ_Codebase 02.08.21 15:34 Сейчас в теме
(21) в ДБФ полез, а основы - пропустил. учись от простого к сложному, иначе всегда будешь так на простых вещах зависать подолгу.
23. user1619761 02.08.21 15:42 Сейчас в теме
(22) Спасибо за напутствие. Подскажи, пожалуйста, куда копать: заменить значения одни на другие, через нажатие кнопки заменить. Обработчик ПоискИЗамена значений разобрать надо?
24. DJ_Codebase 02.08.21 15:46 Сейчас в теме
(23) Это что за обработчик? я такого не знаю. Есть СтрНайти(), есть СтрЗаменить(). Изучи для начала функции для работы со строками - не пожалеешь ;-)
25. user1619761 02.08.21 15:50 Сейчас в теме
(24) Спасибо,ща попробую =) А обработчик нашел в инете, поиск и замена значений. Он работает по принципу консоли запросов, как я понял. Открываешь,вводишь что заменить и на что. Мне просто надо данные в 1с заменить на данные из дбф файла, не знаю, поможет ли мне функция стрзаменить,но я попробую)
26. DJ_Codebase 02.08.21 15:54 Сейчас в теме
(25) это не обработчик - это внешняя обработка. не лезь ты в дебри, начинай с простого, иначе толку не будет
27. user1619761 02.08.21 16:09 Сейчас в теме
(26) Простое это что например? А с заменой мне очень интересно разобраться, поэтому забрасывать не буду, буду пытаться ))
28. DJ_Codebase 02.08.21 17:04 Сейчас в теме
(27) ну тут уже мы давно не по теме пошли, не будем ее раздувать еще больше. Есть обучающие курсы, книжки и т.п. Если это интересно, поднимай новую тему
user1619761; +1 Ответить
29. user1877072 28.06.24 21:33 Сейчас в теме
(28) Вот в дебри вы пошли, а ведь при чтении из внешних файлов, та же кавычка, может быть не совсем той кавычкой, поэтому надо было посоветовать человеку в СтрЗаменить() вставить кавычку из исходной строки.

UPD. Прочитал дальше и все стало яснее ясного)
16. user1619761 02.08.21 15:13 Сейчас в теме
(13) Вот,еще раз проверил, на всякий случай) Второй вариант даже не хочу проверять))
Прикрепленные файлы:
18. DJ_Codebase 02.08.21 15:21 Сейчас в теме
(16) о боже!... отладчик всегда показывает строки в кавычках!
Это не значит, что они там есть!!!
user1877072; +1 Ответить
20. user1619761 02.08.21 15:25 Сейчас в теме
(18) они там есть, в таблицу выводилось с кавычками ) из дбф были в кавычках, из 1с без них. Я ж говорю, не просто так я стал это прописывать
2. Ivanov_OM 38 02.08.21 14:21 Сейчас в теме
Зачем так все усложнять.
Отбор = Новый Структура("Код,Наименование","","");
МассивПустыхСтрок = ТабЗнач.НайтиСтроки(Отбор);
Для Каждого СтрокаМассива из МассивПустыхСтрок Цикл
	ТабЗнач.Удалить(СтрокаМассива);
КонецЦикла;	


В отбор ставишь те поля таблицы, которые нужно проверять на пустоту.
В моем примере это Код и Наименование.
Pependos; DoctorRoot; nomad_irk; FilimonVl; user1619761; ubnkfl; +6 Ответить
5. user1619761 02.08.21 14:40 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот