Имя: Пароль:
1C
1С v8
Как проверить пустую строку и, если она пуcтая, то перейти к следующей
0 ksru
 
25.06.17
20:29
мне нужно в столбце проверить пустую строку если она пустая тогда ничего не делаем а переходим к следующей строке а если в ней что-то есть то что-то происходит а потом после завершения действия происходит переход к следующей строке и все повторяется пока строки в столбце не кончатся

Если ПустаяСтрока(СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры) Тогда
Сообщить("Пусто");
иначе

вот попытка но остановился на 1 строчке
1 Amra
 
25.06.17
20:32
ЗначениеЗаполнено. Продам СП, дорого
2 ksru
 
25.06.17
20:33
(1) не понял?
3 Garykom
 
гуру
25.06.17
20:35
(1) Только СП не хватит, там про циклы мало написано
4 ksru
 
25.06.17
20:37
кто-нибудь решал такую задачу?
5 Amra
 
25.06.17
20:40
(2) Что именно тебе не понятно?
6 ksru
 
25.06.17
20:44
(5) как решить проблему
7 ksru
 
25.06.17
20:44
не делал что-то подобное никогда
8 GreyK
 
25.06.17
20:45
(4) Нет, конечно. Тупые и жадные на такие мелочи не размениваются. Только для ВАС у меня есть кошерная версия СП, только сегодня за 1000$.
(6) Смотри (4)
9 Asmody
 
25.06.17
20:47
(7) А программировать приходилось?
10 ksru
 
25.06.17
20:48
(8) спасибо мне для диплома это не пригодиться, (7) приходилось
11 ksru
 
25.06.17
20:48
а в 1с существует оператор перход к другой строке в коде типо как в батниках?
12 Garykom
 
гуру
25.06.17
20:50
13 GreyK
 
25.06.17
20:55
(10) Как ты думаешь что вернет ПустаяСтрока(Нечто)? Подумай как значение преобразуется в строку.
14 Мыш
 
25.06.17
20:58
Народ, хорош страдать снобизмом и упражняться в петросянстве. Оно хорошо для упорствующих в невежестве.

(0) ХарактеристикаНоменклатуры скорее всего имеет ссылочный тип, поэтому проверяется на пустое значение другими методами. Либо "<>.ПустаяСсылка()", либо ЗначениеЗаполнено(<>).
ПустаяСтрока(<>) - это для строковых типов.
15 GreyK
 
25.06.17
21:02
(14) Ты про "нул" забыл двоешнику подсказать.
16 Garykom
 
гуру
25.06.17
21:02
(14) Там проблема что человек считает "Я нашел себе работу мечты!" для https://tyumen.zarplata.ru/vacancy/card/132987921/Imitator_programmista?position=29
17 ksru
 
25.06.17
21:05
стибать и я могу а помочь единицы
18 Garykom
 
гуру
25.06.17
21:08
(14) Эээ надеюсь понял что проблема то не в "ЗначениеЗаполнено" а немного в другом?

Как бы пытался помочь сразу еще в (3) но походу не дошло
19 Asmody
 
25.06.17
21:11
(17) пишеццо "стебать"
20 Asmody
 
25.06.17
21:11
(18) Этот из тех, которым 85 тыр надо сразу?
21 Garykom
 
гуру
25.06.17
21:13
(20) Это вряд ли доучится, только если диплом купит за $

Жаль не смог понять где он пытается учиться, написал бы кому нибудь по учебной части.
22 ksru
 
25.06.17
21:15
(21) да ну вас
23 Dotoshin
 
25.06.17
21:19
24 Tarlich
 
25.06.17
22:01
Для каждого стр из Товары цикл
   если не  ЗначениеЗаполнено(стр.Характеристика) тогда
       Сообщить("Есть строки с не зап характеристикой");
    КонецЕсли;
КонецЦикла;
25 Garykom
 
гуру
25.06.17
22:11
(24) "Прервать" добавить чтобы зря цикл дальше не крутить.

Но для ТС добавить "Продолжить" и переходить к следующей строке как он хочет.

ЗЫ Я реально не могу понять, это что так сложно прочитать-осмыслить всего одну книжку по 1С?
А если это не надо (что то там читать) то просто нанимаешь того кто прочитал и пусть (не бесплатно) делает.
26 Amra
 
25.06.17
22:16
(25) Книжки читать? Вот еще, диплом еще "вчера" надо было сдать
27 ksru
 
25.06.17
22:47
этот код получится впихнуть в нее


Строка = СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры;
// возьмём начиная с 15 индекса 11 символа
ВозвратДата=(Сред(Строка, 16, 10)); // дата 01.01.0001
День=(Сред(ВозвратДата, 1, 2));
Месяц=(Сред(ВозвратДата, 4, 2));
Год=(Сред(ВозвратДата, 7, 4));
НачалаПроизводства=Дата(Год, Месяц, День);
//вычисляем смену
Переменная =СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры;
Позиция = Найти(Переменная, ", Д");
Если Позиция=26 Тогда Смена=НачалаПроизводства+3*60*60*24;
ИначеЕсли Позиция=0 тогда
Позиция = Найти(Переменная, ", Н");
Если Позиция=26  Тогда Смена=НачалаПроизводства+3*60*60*24+(60*60*12);
иначе СтрокаТабличнойЧасти.Партия="";
КонецЕсли;
КонецЕсли;
Если Смена>ТекущаяДата() тогда
СтрокаТабличнойЧасти.Партия="На созревании до, "+Смена+", Н";
иначе СтрокаТабличнойЧасти.Партия="Готово, "+Смена+", Д";
КонецЕсли;
28 ksru
 
25.06.17
22:53
хочу что при изменении данных вычислялась дата созревания если в строке СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры что-то есть

Процедура ПриИзмененииДанных()
//цикл
//код
КонецПроцедуры

вот((
29 Asmody
 
25.06.17
22:57
как тут пеекреститься на форуме?
30 Garykom
 
гуру
25.06.17
22:58
Ну и сделай Процедуру/Функцию в которую передаешь нужную строку ТЧ вызывая ее внутри цикла.

ЗЫ Код конечно кривой что пипец - верю что препод поверит "сам делал" а не заказывал ))
31 Garykom
 
гуру
25.06.17
22:59
(29) Лучше благослови заблудшего
32 Asmody
 
25.06.17
23:00
(27) С чего ты взял, что ХарактеристикаНоменклатуры это дата?
33 ksru
 
25.06.17
23:02
(32) <img src="http://download.pro-ks.ru/123.png"; alt="" class="bbc_img">
34 ksru
 
25.06.17
23:02
35 ksru
 
25.06.17
23:03
там текст и дата
36 ksru
 
25.06.17
23:03
формат фиксированный
37 Lexey_
 
25.06.17
23:06
(36) кем или чем фиксированный?
38 Имитация работы
 
25.06.17
23:06
Ну вот поможешь тебе сейчас, а потом от твой работы помрёт кто нибудь, потому что ты ничего не знаешь и не умеешь. Ну тебя нахъ с твоим дипломом.
39 ksru
 
25.06.17
23:14
(38) ))) помру только я эта работа никуда не пойдет))
40 ksru
 
25.06.17
23:16
(37) в справочнике стандартные значение набор символов не меняется, меняется только дата и смена
41 Lexey_
 
25.06.17
23:17
(40) ну так и бери дату из соответствующего поля
42 ksru
 
25.06.17
23:27
(41) так вот она и берется

ВозвратДата=(Сред(Строка, 16, 10));// дата 01.01.0001
День=(Сред(ВозвратДата, 1, 2));
Месяц=(Сред(ВозвратДата, 4, 2));
Год=(Сред(ВозвратДата, 7, 4));
НачалаПроизводства=Дата(Год, Месяц, День);
43 Имитация работы
 
25.06.17
23:32
(21) В Омске счётное количество вузов. Можно тупо написать в каждый, про Константина Степанова, родившегося 24 мая.
44 Lexey_
 
25.06.17
23:33
(42) что-то спросить хочешь?
45 ksru
 
25.06.17
23:34
(43) Пиши, пиши а что писать будешь?
46 ksru
 
25.06.17
23:37
(43) ты только тролить и можешь
47 Имитация работы
 
25.06.17
23:38
А, да это ж тот самый Константин, который не в ладах с книжками.
Получение значения справочника
48 Имитация работы
 
25.06.17
23:43
Так что (14) прав, это хорошо...
49 ksru
 
25.06.17
23:48
(48) я тебя потом, как-нибудь потролю, а сейчас у меня не так уж много времени, так что можешь писюльки свои писать дальше
50 Garykom
 
гуру
26.06.17
00:01
(49) У тя было много-много времени пока игрался в CS...

Прикинь многие тут успели не только в CS (и прочие поиграть) но и выучить 1С... а кое кто и не только 1С и еще играть успевает и книжки читать...
51 Имитация работы
 
26.06.17
00:01
Диплом, что-ли горит? Да ну, быть такого не может, весь год же все хорошо было!
52 Garykom
 
гуру
26.06.17
00:04
(50)+ Сам неплохо в Half-Life Team Fortress рубился в свое время, а до этого и в Doom и в Duke Nukem c Quake.
Успевая в промежутке и стратегиям типа Варкрафта/Старкрафта время уделять и даже квестам ))
53 ksru
 
26.06.17
00:11
(49) открою тебе маленький секрет, я не играю в игры, а сайт мой хоть и кривой но работает.

А на счет кода так проканает?

Процедура ПриИзмененииДанных()
//цикл


Для каждого СтрокаТабличнойЧасти из СтрокаТабличнойЧасти.ХарактеристикаНоменклатурыцикл Цикл
   если не  ЗначениеЗаполнено(СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры) тогда
Перейти ~а; //метка
иначе Перейти ~б; //метка
~б: //метка
Строка = СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры;
// возьмём начиная с 15 индекса 11 символа
ВозвратДата=(Сред(Строка, 16, 10));// дата 01.01.0001
День=(Сред(ВозвратДата, 1, 2));
Месяц=(Сред(ВозвратДата, 4, 2));
Год=(Сред(ВозвратДата, 7, 4));
НачалаПроизводства=Дата(Год, Месяц, День);
//вычисляем смену
    КонецЕсли;
КонецЦикла;
Переменная =СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры;
Позиция = Найти(Переменная, ", Д");
Если Позиция=26 Тогда Смена=НачалаПроизводства+3*60*60*24;
ИначеЕсли Позиция=0 тогда
Позиция = Найти(Переменная, ", Н");
Если Позиция=26  Тогда Смена=НачалаПроизводства+3*60*60*24+(60*60*12);
иначе СтрокаТабличнойЧасти.Партия="";
КонецЕсли;
КонецЕсли;
Если Смена>ТекущаяДата() тогда
СтрокаТабличнойЧасти.Партия="На созревании до, "+Смена+", Н";
иначе СтрокаТабличнойЧасти.Партия="Готово, "+Смена+", Д";
КонецЕсли;
~а:  //метка
КонецПроцедуры
54 ksru
 
26.06.17
00:15
тролят все а помогают единицы
55 ksru
 
26.06.17
00:20
{Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаДокумента.Форма(1163)}: Значение не является значением объектного типа (ХарактеристикаНоменклатурыцикл)
Для каждого СтрокаТабличнойЧасти из СтрокаТабличнойЧасти.ХарактеристикаНоменклатурыцикл Цикл

как решить кто знает
56 Lexey_
 
26.06.17
00:22
(55) надо включить мозг, причем, совсем немного
57 Garykom
 
гуру
26.06.17
00:31
Встречаются два братка, один другому говорит:
- Васю Бритого знаешь?
- Знаю.
- Вчера стреляли в него. Восемь пуль и все в голову.
- Ну и?
- Ничего. Врач говорит жить будет - мозг не задет
58 корум
 
26.06.17
00:53
(55) это безнадёжно.

ХарактеристиканоменклатурыЦикл на что намекает?

На то, что нет такого реквизита .
Цикл сотри.
59 zvial
 
26.06.17
05:04
(53) Как теперь это развидеть?
60 igorPetrov
 
26.06.17
05:11
Жесть какая-то, зачем ТС этим занимается? У нас, что других профессий нет?
(57) +100500
61 Имитация работы
 
26.06.17
07:22
(60) Корочка нужна. Похоже, очень на должность хочется.
62 Dotoshin
 
26.06.17
08:52
(27) Открой еще один секрет. Зачем это все нужно? Это дипломная работа или ты уже работаешь и это реальная рабочая задача?
63 Мимохожий Однако
 
26.06.17
08:53
(62) Это реальная дипломная работа ))
64 Dotoshin
 
26.06.17
08:53
(62) к (53)
65 Buster007
 
26.06.17
09:33
(0) ты на кого учился?
66 igorPetrov
 
26.06.17
09:34
(65) он не учился.
67 dezss
 
26.06.17
09:54
(53) дружище, сперва освой оформление кода. Отступы и т.п.
Твой код читать - это просто ломать глаза. 1С сама за тебя отступы же делает, зачем ты их везде убираешь?

Для каждого СтрокаТабличнойЧасти из СтрокаТабличнойЧасти.ХарактеристикаНоменклатурыцикл Цикл

СтрокаТабличнойЧасти.ХарактеристикаНоменклатурыцикл - это что, коллекция значений?
68 HardBall
 
26.06.17
10:23
(0) А какой пятничный пост был бы.
69 Serg_1960
 
26.06.17
11:02
"Стебать и я могу, а помочь - единицы"
"Троллят все, а помогают - единицы"
"Эта работа никуда не пойдет"
...
Стёбаю и троллю - эта работа в никуда - "Не в коня корм"(с)


    Для Каждого СтрокаТабличнойЧасти Из ЭтотОбъект.Товары Цикл
        Если Не ЗначениеЗаполнено(СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры) Тогда
            Продолжить;
        КонецЕсли;
        Смена = Неопределено;
        Партия = Неопределено;
        СтрДляРазбора = "" + СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры;
        Признак = Прав(СтрДляРазбора, 3);
        Если Признак = ", Д" Тогда
            Смена = Дата(СтрЗаменить(Прав(СтрДляРазбора, 13), Признак, "") + "00:00:00") + 60*60*24*3;
        ИначеЕсли Признак = ", Н" Тогда
            Смена = Дата(СтрЗаменить(Прав(СтрДляРазбора, 13), Признак, "") + "12:00:00") + 60*60*34*3;
        КонецЕсли;
        Если Не ЗначениеЗаполнено(Смена) Тогда
            Партия = "";
        ИначеЕсли Смена > ТекущаяДата() тогда
            Партия = "На созревании до, " + Формат(Смена, "ДФ=dd.MM.yyyy") + ", Н";
        Иначе
            Партия = "Готово, " + Формат(Смена, "ДФ=dd.MM.yyyy") + ", Д";
        КонецЕсли;
    КонецЦикла;
70 Radkt
 
26.06.17
11:39
(53)Когда я начинал, и в коде не разбирался уже знал, что надо избегать написания кода через GOTO/перейти
71 Веселый собака
 
26.06.17
11:52
Спасибо, повеселили.
Обычно, если что-то не знаешь, то копытами в грудь не бьешь, а оно вот как бывает.
72 sapphire
 
26.06.17
12:23
(70) Брось, парень реально крут, такой копры сто лет уже не видали :)
73 Имитация работы
 
26.06.17
12:35
(71) Побить копытами в грудь, это запросто. Кого? (:
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший